package com.chaopei.day09;

/**
 * @Author Corday 天涯
 * @Date 2022/3/15 10:29
 * 创建一个帐户实体类
 */
public class Account {
    //    帐户余额初始为0
    private int balance = 0;
    //  声明一个标志,用于表明是否已存
    private boolean flag = false;

    //    创建存款的方法,生产者
    public synchronized void saveMoney(int savem) {
//        if (flag) {
//            try {
//                //已经有存款,存款线程等取款线程去取
//                wait();
//            } catch (InterruptedException e) {
//                e.printStackTrace();
//            }
//        }//if
        //执行存款操作
        balance += savem;
        //输出提示信息
        System.out.println("已存:" + savem + " 余额:" + balance);
        //flag = true;
        //通知取款线程继续取款
        notify();
    }

    //    创建取款的方法,消费者
    public synchronized void getMoney(int getm) {
//        if (!flag) {//相当于flag==false
//            try {
//                wait();
//            } catch (InterruptedException e) {
//                e.printStackTrace();
//            }
//        }//if
        //执行取款操作
        if (getm <= balance) {
            balance -= getm;
        } else {
            getm = 0;
        }
        //输出取款信息
        System.out.println("已取:" + getm + " 余额:" + balance);
        //flag = false;
        //通知存款线程继续存入
        notify();
    }

}
